This is how you can parse the "FileGroupDescriptorW" type data:
QByteArray fgd = evt->mimeData()->data("FileGroupDescriptorW");
LPFILEGROUPDESCRIPTORW fgddata = (LPFILEGROUPDESCRIPTORW)fgd.constData();
unsigned numItems = fgddata->cItems;
for(unsigned i = 0; i < numItems; ++i) {
FILEDESCRIPTORW& desc = fgddata->fgd[i];
if(desc.dwFlags & FD_FILESIZE) {
QString fileName = QString::fromUtf16((const ushort*)desc.cFileName);
int fileSize = desc.nFileSizeLow - desc.nFileSizeHigh;
QByteArray fileData = evt->mimeData()->data("application/x-qt-windows-mime;value=\"FileContents\"");
//only the first file in Qt 5.4 so
break;
//in Qt 5.5 you could do
//QByteArray fileData = evt->mimeData()->data("application/x-qt-windows-mime;value=\"FileContents\";index=" + QString::number(i));
}
}